#include <iostream>
#include <string>
#include <vector>
#include <chrono>
#include <sw/redis++/redis++.h>

using std::cout;    
using std::endl;
using std::string;
using std::vector;
using sw::redis::Redis;

void test1(Redis &redis)
{
    redis.set("cmd555", "vcmd555", std::chrono::seconds(0), sw::redis::UpdateType::NOT_EXIST);
    auto value = redis.get("cmd555");
    cout << value.value() << endl;
    redis.set("cmd555", "vvcmd555", std::chrono::seconds(0), sw::redis::UpdateType::EXIST);
    value = redis.get("cmd555");
    cout << value.value() << endl;
}

void test2(Redis &redis)
{
    redis.mset( {std::make_pair("cmd666", "vcmd666"), std::make_pair("cmd777", "vcmd777"), std::make_pair("cmd888", "vcmd888")});

    vector<sw::redis::OptionalString> result;
    auto it = std::back_inserter(result);
    redis.mget({"cmd666", "cmd777", "cmd888"}, it);
    for (auto &e : result)
    {
        cout << e.value() << endl;
    }
}




int main()
{
    Redis redis("tcp://127.0.0.1:6379");
    // test1(redis);
    // test2(redis);
    return 0;
}